/**
 * 
 */
package com.desksoft.ecommerce.util.expr;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.Date;
import java.util.Map;

import com.desksoft.utility.date.DateUtil;
import com.desksoft.utility.json.JSONUtil;
import com.google.common.collect.Maps;

/***************************************
 * <pre>
 * 版权所有：杭州迪科软件 保留所有权利
 * 创建日期: Sep 14, 2011 4:02:29 PM
 * 创建作者：yejw
 * 文件名称：ExprUtil.java
 * 版本：
 * 功能：
 * 最后修改时间：Sep 14, 2011 4:02:29 PM
 * 修改记录：
 * </pre>
 *****************************************/

public class ExprUtil {

	/**
	 * 单一属性名称, 属性值 转为JSON字符串
	 * 
	 * @param propName
	 * @param propVal
	 * @return
	 */
	public static String toJSON(String propName, Object propVal) {
		checkNotNull(propName);
		checkNotNull(propVal);
		
		Map<String, Object> propMap = Maps.newHashMap();
		propMap.put(propName, propVal);
		
		return toJSON(propMap);
	}
	
	/**
	 * 属性名称, 属性值哈希表转为JSON字符串
	 * 
	 * @param propMap
	 * @return
	 */
	public static String toJSON(Map<String, Object> propMap) {
		checkNotNull(propMap);
		
		Object val = null;
		
		for (String key : propMap.keySet()) {
			val = propMap.get(key);
			
			if (val instanceof Date) {
				propMap.put(key, dateToInt((Date) val));
			}
		}
		
		return JSONUtil.toJSON(propMap);
	}
	
	/**
	 * 把日期转成格式: yyyyMMdd 后再转换为INT类型 
	 * @param date
	 * @return
	 */
	public static int dateToInt(Date date) {
		checkNotNull(date);
		
		return Integer.parseInt(DateUtil.getDate(date, DateUtil.YYYYMMDD));
	}
	
}
